MySQL HAVING Clause

MySQL இல் HAVING கிளாஸைப் பயன்படுத்தி ஒருங்கிணைந்த செயல்பாடுகளுடன் நிபந்தனைகளைச் சேர்த்து கற்றுக்கொள்ளுங்கள்

MySQL HAVING கிளாஸ்

HAVING கிளாஸ் SQL இல் சேர்க்கப்பட்டது, ஏனெனில் WHERE முக்கிய சொல் ஒருங்கிணைந்த செயல்பாடுகளுடன் பயன்படுத்த முடியாது.

HAVING தொடரியல்

SELECT column_name(s)
FROM table_name
WHERE condition
GROUP BY column_name(s)
HAVING condition
ORDER BY column_name(s);

டெமோ தரவுத்தளம்

Northwind மாதிரி தரவுத்தளத்தில் "Customers" அட்டவணையிலிருந்து ஒரு தேர்வு கீழே உள்ளது:

CustomerID CustomerName ContactName Address City PostalCode Country
1 Alfreds Futterkiste Maria Anders Obere Str. 57 Berlin 12209 Germany
2 Ana Trujillo Emparedados y helados Ana Trujillo Avda. de la Constitución 2222 México D.F. 05021 Mexico
3 Antonio Moreno Taquería Antonio Moreno Mataderos 2312 México D.F. 05023 Mexico
4 Around the Horn Thomas Hardy 120 Hanover Sq. London WA1 1DP UK
5 Berglunds snabbköp Christina Berglund Berguvsvägen 8 Luleå S-958 22 Sweden

MySQL HAVING எடுத்துக்காட்டுகள்

பின்வரும் SQL கூற்று ஒவ்வொரு நாட்டிலும் உள்ள வாடிக்கையாளர்களின் எண்ணிக்கையை பட்டியலிடுகிறது. 5 க்கும் மேற்பட்ட வாடிக்கையாளர்களைக் கொண்ட நாடுகளை மட்டும் சேர்க்கவும்:

SELECT COUNT(CustomerID), Country
FROM Customers
GROUP BY Country
HAVING COUNT(CustomerID) > 5;

பின்வரும் SQL கூற்று ஒவ்வொரு நாட்டிலும் உள்ள வாடிக்கையாளர்களின் எண்ணிக்கையை பட்டியலிடுகிறது, உயர் முதல் குறைந்த வரிசையில் வரிசைப்படுத்தப்பட்டுள்ளது (5 க்கும் மேற்பட்ட வாடிக்கையாளர்களைக் கொண்ட நாடுகளை மட்டும் சேர்க்கவும்):

SELECT COUNT(CustomerID), Country
FROM Customers
GROUP BY Country
HAVING COUNT(CustomerID) > 5
ORDER BY COUNT(CustomerID) DESC;

டெமோ தரவுத்தளம்

Northwind மாதிரி தரவுத்தளத்தில் "Orders" அட்டவணையிலிருந்து ஒரு தேர்வு கீழே உள்ளது:

OrderID CustomerID EmployeeID OrderDate ShipperID
10248 90 5 1996-07-04 3
10249 81 6 1996-07-05 1
10250 34 4 1996-07-08 2

மற்றும் "Employees" அட்டவணையிலிருந்து ஒரு தேர்வு:

EmployeeID LastName FirstName BirthDate Photo Notes
1 Davolio Nancy 1968-12-08 EmpID1.pic Education includes a BA....
2 Fuller Andrew 1952-02-19 EmpID2.pic Andrew received his BTS....
3 Leverling Janet 1963-08-30 EmpID3.pic Janet has a BS degree....

மேலும் HAVING எடுத்துக்காட்டுகள்

பின்வரும் SQL கூற்று 10 க்கும் மேற்பட்ட ஆர்டர்களைப் பதிவு செய்த ஊழியர்களை பட்டியலிடுகிறது:

SELECT Employees.LastName, COUNT(Orders.OrderID) AS NumberOfOrders
FROM (Orders
INNER JOIN Employees ON Orders.EmployeeID = Employees.EmployeeID)
GROUP BY LastName
HAVING COUNT(Orders.OrderID) > 10;

பின்வரும் SQL கூற்று "Davolio" அல்லது "Fuller" ஊழியர்கள் 25 க்கும் மேற்பட்ட ஆர்டர்களைப் பதிவு செய்திருந்தால் பட்டியலிடுகிறது:

SELECT Employees.LastName, COUNT(Orders.OrderID) AS NumberOfOrders
FROM Orders
INNER JOIN Employees ON Orders.EmployeeID = Employees.EmployeeID
WHERE LastName = 'Davolio' OR LastName = 'Fuller'
GROUP BY LastName
HAVING COUNT(Orders.OrderID) > 25;

பயிற்சி

10 க்கும் மேற்பட்ட ஆர்டர்களைப் பதிவு செய்த ஊழியர்களை பட்டியலிட சரியான தொடரியலைத் தேர்ந்தெடுக்கவும்.

SELECT Employees.LastName, COUNT(Orders.OrderID) AS NumberOfOrders
✓ சரி! இது தேர்ந்தெடுக்கப்பட வேண்டிய நெடுவரிசைகளை சரியாக குறிப்பிடுகிறது
FROM
✓ சரி! FROM என்பது அட்டவணைகளைக் குறிப்பிடப் பயன்படும் முக்கிய சொல்லாகும்
(Orders INNER JOIN Employees ON Orders.EmployeeID = Employees.EmployeeID)
✓ சரி! இது Orders மற்றும் Employees அட்டவணைகளை சரியாக இணைக்கிறது
GROUP BY LastName
✓ சரி! GROUP BY கடைசிப் பெயரால் தரவை தொகுக்கிறது
HAVING
✓ சரி! HAVING ஒருங்கிணைந்த செயல்பாட்டில் நிபந்தனையைச் சேர்க்கப் பயன்படுகிறது
COUNT(Orders.OrderID) > 10
✓ சரி! இது 10 க்கும் மேற்பட்ட ஆர்டர்களைக் கொண்ட ஊழியர்களை மட்டும் தேர்ந்தெடுக்கும் நிபந்தனையாகும்